<?php
class ui_save_save extends ui {
	/**
	 *
	 * @param object $S        	
	 * @param
	 *        	array
	 *        	所有POST过来的参数已经encodeURIComponent，然后Magic Quote了
	 *				所以使用之前先stripslashes，然后urldecode
	 *				'单引号 = 3590cb8af0bbb9e78c343b52b93773c9
	 *				"双引号 = b15835f133ff2e27c7cb28117bfae8f4
	 *				html -> encodeURIComponent -> 单引号 encode(双引号、反斜杠...) -> POST/GET -> \单引号 encode(双引号、反斜杠...) -> stripslashes -> urldecode -> 单引号 双引号、反斜杠...
	 *        	$_POST = array (
	 *				u			// url
	 *				t			// title
	 *				hs			// html selected / html all
	 *				cn			// new circle name
	 *				cp			// new circle IS private
	 *				f			// friends
	 *				c			// circles
	 *        	)
	 */
	public function __construct($S, $param) {
		parent::__construct ();
		
		if ($this->uid and is_array ( $_POST )) {
			if ($_POST ['br'] === 'ie') {
				foreach ( $_POST as $k => $v ) {
					$v = preg_replace ( '/\'|\"/', '', $v );				// 去掉所有单双引号（防止从外部提交进来的数据）
					$v = stripslashes ( $v );						// 去掉Magic Quote加上的反斜杠
					$v = urldecode ( $v );						// 把encodeURIComponent的字符串反转回来
					$v = str_replace ( 'NjhUy6OpFdeAqmLK', "'", $v );	// 把单双引号转义回来，这里是为了解决IE中Iframe提交的问题，如果不转义的话，IE会提示阻止跨站提交
					$v = str_replace ( 'kJuh6gXde3ScfoYR', '"', $v );
					$_POST [$k] = $v;
				}
			} else { // firefox和chrome是ajax提交，不用更多的处理
				foreach ( $_POST as $k => $v ) {
					$v = stripslashes ( $v ); // 去掉Magic Quote加上的反斜杠
					$_POST [$k] = $v;
				}
			}
			
			// 如果title是空的话，就用url代替吧
			// ！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！
			if (empty ( $_POST ['t'] )) {
				$par = parse_url ( $_POST ['u'] );
				$_POST ['t'] = $par ['scheme'] . '://' . $par ['hostname'] . $par ['path'];
			}
			
			// 保存到新circle中
			if ($_POST ['cn']) {
				$data_circle = new data_circle ();
				$privacy = ($_POST ['cp']) ? 'private' : 'public';
				$circle_id = $data_circle->add ( $this->uid, $_POST ['cn'], $privacy );
				if ($circle_id) {
					$_POST ['c'] .= $circle_id; // $_POST['c']的最后应该会有一个“,”
				}
			}
			
			if ($_POST ['u'] and $_POST ['t'] and $_POST ['hs'] and $_POST ['c']) {
				$data_save_article = new data_save_article ();
				// 写入article，写入content，content clip第一步处理，写入circle article，发布Event（hight）： 发布到recommend article，发布feed，增加我在圈子中发布的文章数，增加circle统计数，增加url计数，发布社交网站信息
				$article_id = $data_save_article->add ( $this->uid, $_POST ['u'], $_POST ['t'], $_POST ['hs'], $_POST ['f'], $_POST ['c'] );
				if ($article_id) {
						$data = array ('article_id'	=> $article_id );
						if ($_COOKIE['is_show_extension_tip']) {
							setcookie('is_show_extension_tip', '', -1, '/', '.uread.me');
						}
				} else {
					$data = array ('error_msg'	=> '保存文章时出现错误' );
				}
			} else {
				$data = array ('error_msg'	=> '没有选定或者创建文件夹' );
			} 
		} else {
			$data = array ('error_msg'	=> '没有登录，或者POST数据错误' );
		}
		
		if ($_POST ['br'] === 'ie') {
			$S->assign ( 'data', $data );
		} else {
			$S->assign ( 'json', json_encode ( $data ) );
		}
	}
}
?>